Kako bi izgledal računalnik prihodnosti, ki bi bil zares v lasti in pod nadzorom uporabnika
Predstavljaj si računalnik, pri katerem ti ni treba ustvariti uporabniškega računa samo zato, da lahko uporabljaš program. Računalnik, kjer aplikacija ne potrebuje dostopa do celotnega sistema, če želi samo odpreti eno mapo. Kjer program nima razloga za stalno povezavo z internetom, če za svoje delo interneta sploh ne potrebuje. Kjer posodobitev ne pomeni nujno, da bo jutri drugačna tudi programska oprema, na katero si se včeraj zanesel.
In predvsem: računalnik, pri katerem so programi, podatki in odločitve še vedno v lasti uporabnika.
Morda se sliši futuristično. Pravzaprav pa je zanimivo, da je del te filozofije mogoče najti v precej starih programih.
Eden od njih je K-Meleon (podrobno o tem lite artefaktu iz prejšnjega tisočletja), brskalnik, ki je nastal okoli leta 2000 in je bil od začetka zasnovan precej drugače od velikih spletnih platform. Ko sem ga četrt stoletja pozneje ponovno zagnal na Windowsu 10 , je prvotno vprašanje bilo preprosto: ali je lahko tako star browser leta 2026 sploh še uporaben?
Toda vprašanje se je hitro spremenilo.
Kaj če problem ni samo v tem, ali stara programska oprema še deluje?
Kaj če nas stara programska oprema lahko spomni na nekaj, kar smo pri razvoju sodobnega računalnika izgubili?
Na idejo, da je računalnik najprej orodje uporabnika.
Od portable programa do drugačnega računalnika
K-Meleon je zanimiv tudi zaradi načina, kako lahko programska oprema živi brez klasične namestitve.
Preneseš paket, ga razpakiraš, klikneš izvršno datoteko in program deluje. V določenih primerih lahko celoten program s konfiguracijo in podatki živi v svoji mapi.
To je zelo drugačen občutek od sodobnega modela, kjer se aplikacija pogosto razteza čez več lokacij sistema, uporablja dodatne storitve, updaterje, račune, zunanje strežnike in druge komponente.
Portable pristop ima eno preprosto, skoraj staromodno idejo:
Program je paket.
Lahko ga kopiraš. Lahko ga arhiviraš. Lahko imaš več različic. Lahko ga prestaviš na drug računalnik. In ko ga ne želiš več, je odstranitev lahko tako preprosta kot brisanje njegove mape.
Portable programska oprema sama po sebi seveda ni rešitev za vse probleme. Toda predstavlja zanimiv arhitekturni princip:
Aplikacija ni nujno nekaj, kar mora postati del operacijskega sistema.
Kaj pa, če bi ta princip razširili na celoten osebni računalnik?
Računalnik kot platforma, ne kot gospodar
Današnji operacijski sistemi morajo opravljati ogromno nalog. Skrbijo za strojno opremo, gonilnike, procese, pomnilnik, omrežje, grafiko, datotečni sistem, varnost in še marsikaj.
Toda uporabniški model bi lahko bil veliko preprostejši.
Operacijski sistem bi bil predvsem minimalna in varna platforma, ki aplikacijam zagotavlja tisto, kar potrebujejo za delo.
Na primer:
- procesor in pomnilnik,
- grafični vmesnik,
- disk in datotečni sistem,
- zvok,
- omrežje,
- GPU,
- osnovne varnostne mehanizme,
- izolacijo procesov,
- dovoljenja.
Aplikacija pa bi živela v svojem okolju.
Namesto da bi aplikacija dobila dostop do celotnega računalnika, bi OS določil:
To so tvoji podatki. To so tvoje pravice. To je prostor, do katerega lahko dostopaš. To je strojna oprema, ki jo smeš uporabljati. Internet ti je dovoljen ali prepovedan.
In konec.
Aplikacija kot samostojen paket
Predstavljajmo si prihodnjo aplikacijo:
PhotoTool/
├── PhotoTool
├── engine/
├── resources/
├── plugins/
├── config/
└── profile/
Uporabnik jo prenese, zažene in operacijski sistem jo predstavi kot samostojno aplikacijo.
Pred prvim zagonom bi lahko uporabnik videl nekaj takega:
PhotoTool želi dostop do:
✓ vaših slik
✓ GPU
✓ odložišča
✗ mikrofona
✗ kamere
✗ kontaktov
✗ sistemskih nastavitev
✗ drugih aplikacij
✗ interneta
Če aplikacija za urejanje fotografij ne potrebuje interneta, zakaj bi ga imela?
Če potrebuje dostop samo do ene mape, zakaj bi imela dostop do celotnega diska?
To je pomembna razlika v razmišljanju.
Ne govorimo več: »Zaupaj razvijalcu, da bo program uporabljal podatke odgovorno.«
Govorimo: »Programu teh podatkov sploh nismo dali.«
Varnost brez slepega zaupanja
Sodobna programska oprema pogosto poudarja varnost kot razlog za številne sistemske mehanizme, samodejne posodobitve, preverjanje, račune, povezave in centralizirane storitve.
Veliko teh mehanizmov je lahko upravičenih. Problem nastane, ko uporabnik nima več jasne predstave, komu vse mora zaupati, da lahko uporablja svoj računalnik.
Razvijalcu.
Operacijskemu sistemu.
Updaterju.
Cloud storitvi.
Analitiki.
Zunanjim API-jem.
Različnim ponudnikom infrastrukture.
Tretjim osebam.
In še številnim drugim komponentam.
Drugačen model bi poskušal količino potrebnega zaupanja zmanjšati z arhitekturo.
Če aplikacija nima dovoljenja za internet, ga ne more uporabljati.
Če nima dovoljenja za mikrofon, ga ne more uporabljati.
Če ne sme dostopati do sistemskih datotek, jih ne more spreminjati.
To seveda ne pomeni, da je tak sistem avtomatsko varen. Vsaka programska oprema ima lahko ranljivosti. Pomeni pa, da je napadalna in zaupanja vredna površina lahko manjša in predvsem bolj razumljiva.
Minimalizem ni čarobna varnostna rešitev.
Je pa lahko varnostna strategija.
Zasebnost kot posledica arhitekture
Še pomembnejša je zasebnost.
Namesto da uporabniku obljubljamo, »Zasebnost nam je pomembna«, bi lahko sistem pokazal:
»Ta aplikacija nima dovoljenja za omrežje.«
To je precej bolj preverljivo.
Če aplikacija potrebuje internet, uporabnik to vidi. Če ga ne potrebuje, ji ga ni treba dati. In tu se spremeni tudi razmerje med uporabnikom in razvijalcem. Razvijalec ne potrebuje nujno uporabnikovega zaupanja.
Potrebujeta jasna pravila in tehnične omejitve.
Podatki niso last aplikacije
Še en pomemben princip bi bil ločevanje aplikacij od uporabnikovih podatkov.
Danes se lahko hitro zgodi, da aplikacija ustvari svoj format, svoj podatkovni prostor, svoj cloud in svoj način dostopa.
V drugačnem modelu bi bili podatki predvsem uporabnikovi.
Na primer:
USER/
├── Documents/
├── Pictures/
├── Music/
├── Projects/
└── Data/
Aplikacije bi bile orodja za delo s temi podatki.
Če odstraniš aplikacijo, podatki ostanejo.
Če razvijalec aplikacije jutri izgine, tvoji podatki ne izginejo z njim.
Če najdeš drugo aplikacijo, ji lahko dovoliš dostop do istih podatkov.
To spremeni osnovno razmerje: Aplikacija ni lastnik podatkov. Aplikacija je orodje, s katerim uporabnik obdeluje svoje podatke.
Posodobitve brez izgube nadzora
Enak princip bi lahko veljal za posodobitve.
Namesto popolnoma avtomatskega modela bi aplikacija lahko uporabniku pokazala:
Nova različica 4.2
Vključuje: - popravke napak - varnostne popravke - nov JPEG engine [Posodobi] [Preskoči] [Podrobnosti]
Še bolje: stare različice bi lahko ostale na voljo.
PhotoTool/
└── versions/
├── 4.0/
├── 4.1/
└── 4.2/
Če nova različica povzroči težavo, se uporabnik vrne na prejšnjo.
To je pomembno predvsem pri profesionalnem delu, kjer »najbolj nova različica« ni vedno enaka »najbolj uporabna različica«.
Posodobitev bi bila lahko odločitev uporabnika, ne dogodek, ki se mu preprosto zgodi.
Kaj bi to pomenilo za razvijalce?
Tu postane koncept še bolj zanimiv.
Če bi obstajala stabilna, odprta in dobro dokumentirana platforma, bi razvijalec potreboval predvsem eno stvar: dobro aplikacijo.
Platforma bi zagotavljala osnovno okolje.
Razvijalcu ne bi bilo treba za vsako aplikacijo znova graditi celotnega ekosistema namestitve, updaterjev, sistemskih storitev in različnih načinov integracije.
Aplikacija bi bila paket.
Podpisana.
Preverljiva.
Izolirana.
In pripravljena za uporabo.
Tekmovanje bi se zato lahko preselilo nazaj na kakovost programske opreme.
Kdo naredi boljši urejevalnik slik?
Kdo naredi boljši urejevalnik besedil?
Kdo naredi hitrejši browser?
Kdo porabi manj pomnilnika?
Kdo ima boljši uporabniški vmesnik?
Kdo potrebuje manj dovoljenj?
Kdo lahko ponudi odlično aplikacijo brez naročnine?
To je precej drugačen ekosistem od modela, v katerem je velik del vrednosti aplikacije povezan z uporabniškim računom, oblakom, podatki in stalno povezavo s ponudnikom.
In kaj bi se zgodilo z operacijskim sistemom?
OS bi moral postati predvsem motor.
Ne trgovina.
Ne oglaševalska platforma.
Ne podatkovni posrednik.
Ne gospodar aplikacij.
Njegova naloga bi bila zagotoviti stabilno osnovo, na kateri aplikacije delujejo.
V najbolj poenostavljeni obliki:
UPORABNIK
│
▼
┌──────────┐
│ OS │
│ │
│ varnost │
│ hardware │
│ procesi │
│ datoteke │
│ omrežje │
└──────────┘
┌──────────┼──────────┐
▼ ▼ ▼
APP A APP B APP C
sandbox sandbox sandbox
OS zagotavlja infrastrukturo.
Aplikacije tekmujejo med seboj.
Uporabnik odloča.
To je zelo preprost model.
In prav zaradi svoje preprostosti je lahko precej radikalen.
Kako hiter bi lahko bil tak računalnik?
Minimalna arhitektura sama po sebi ne zagotavlja, da bo računalnik hitrejši. Tudi današnji operacijski sistemi vsebujejo ogromno zelo optimizirane tehnologije.
Prednost bi bila drugje.
Manj nepotrebnih procesov.
Manj zunanjih storitev.
Manj sistemskih integracij.
Manj aplikacij, ki delujejo v ozadju.
Manj obveznih mrežnih povezav.
Manj nepredvidljivih sprememb.
In predvsem bolj jasna meja med:
OS → aplikacija → uporabnik.
Rezultat bi lahko bila ne samo dobra zmogljivost, ampak tudi predvidljivost.
Računalnik, ki ti pripada
Morda je najbolj zanimiv del te ideje prav v tem, česa tak računalnik ne bi počel.
Ne bi zahteval računa zato, da bi dokazal, kdo si. Ne bi potreboval oblaka zato, da bi vedel, kje so tvoji podatki. Ne bi zahteval stalne povezave zato, da bi lahko uporabljal program, ki z internetom nima ničesar. Ne bi ti odvzel stare različice programske opreme samo zato, ker je izšla nova.
In aplikacija ne bi bila najemnik v tvojem računalniku. Bila bi tvoje orodje.
To je pravzaprav precej stara predstava o osebnem računalniku. Računalnik je bil nekoč naprava, ki si jo kupil, postavil na mizo in nad katero si imel precejšen nadzor. Programska oprema je bila nekaj, kar si namestil. Podatki so bili tam, kjer si jih shranil. In če si želel vedeti, kaj se dogaja, si lahko pogledal.
Sodobni računalnik je postal neprimerno zmogljivejši, vendar je v nekaterih pogledih postal tudi bolj odvisen od okolja, ki ga ne nadzorujemo.
Zato prihodnost osebnega računalnika morda ni v tem, da bo še bolj povezan, še bolj centraliziran in še bolj inteligenten.
Morda bo prihodnost v tem, da bo znal biti tudi samostojen.
To ne pomeni vrnitve v preteklost. Ravno nasprotno. Gre za uporabo sodobnih tehnologij, da bi ponovno vzpostavili nekaj zelo preprostega: jasno lastništvo, omejena dovoljenja, prenosljivost programske opreme in predvidljivo obnašanje sistema.
OS bi v takem svetu postal skoraj neviden.
Njegova kakovost se ne bi merila po tem, koliko storitev ponuja, koliko podatkov zbira ali koliko časa uporabnika zadržuje v svojem ekosistemu.
Merila bi se po tem, kako malo ovira uporabnika.
Dober OS bi bil kot dober motor: ves čas prisoten, vendar ga opaziš predvsem takrat, ko odpove.
In morda je prav to prava definicija osebnega računalnika prihodnosti: računalnik ni platforma, ki jo uporabljaš. Računalnik je prostor, ki ti pripada.
V njem lahko uporabljaš programsko opremo različnih proizvajalcev, jo prenašaš med napravami, ohranjaš stare različice, svoje podatke uporabljaš z različnimi orodji in se odločiš, kdaj želiš biti povezan.
Internet je lahko storitev. Oblak je lahko orodje. Aplikacija je lahko paket. Operacijski sistem je lahko motor.
Toda uporabnik ostane gospodar svojega računalnika.
In če bomo nekoč izdelali tak računalnik, morda ne bo videti posebej futurističen.
Morda bo samo prvi računalnik po dolgem času, ki bo spet deloval tako, kot smo od osebnega računalnika nekoč pričakovali: da je res oseben.

